package problems.contest;

/**
 * <p></p>
 *
 * @author habitplus
 * @since 19:25, 2022/10/1
 */
public class BCT88 {
    // 第一题: 6212. 删除字符使频率相同
    public boolean equalFrequency(String word) {
        int[] m = new int[26];
        char[] chs = word.toCharArray();

        for (char c : chs) ++m[c - 'a'];

        for (int i = 0; i < 26; ++i) {
            if (m[i] > 0) {
                m[i]--;
                if (ff(m)) return true;
                m[i]++;
            }
        }
        return false;
    }

    private boolean ff(int[] arr) {
        int ret = 0;
        for (int a : arr) {
            if (a > 0) {
                if (ret == 0) {
                    ret = a;
                    continue;
                }
                if (ret != a) return false;
            }
        }
        return true;
    }



    // 第三题: 6213. 所有数对的异或和
    public int xorAllNums(int[] nums1, int[] nums2) {
        int ret = 0;
        int n1 = nums1.length;
        int n2 = nums2.length;

        if (n2 % 2 != 0) {
            for (int num : nums1) ret ^= num;
        }

        if (n1 % 2 != 0) {
            for (int num : nums2) ret ^= num;
        }

        return ret;
    }


    // 第二题: 6197. 最长上传前缀
    class LUPrefix {
        boolean[] d;
        int pre;
        public LUPrefix(int n) {
            d = new boolean[n + 1];
            pre = 0;
        }

        public void upload(int video) {
            d[video] = true;
        }

        public int longest() {
            while (pre + 1 < d.length && d[pre + 1]) {
                ++pre;
            }
            return pre;
        }
    }




    // 第四题: 6198. 满足不等式的数对数目
//    public long numberOfPairs(int[] nums1, int[] nums2, int diff) {
//        int n = nums1.length;
//        int[] d = new int[n];
//
//        for (int i = 0; i < n; ++i) {
//            d[i] = nums1[i] - nums2[i];
//        }
//
//
//    }

}

